Field
Embodiments of the present disclosure generally relate to managing software updates (e.g., upgrades to newer versions of software or downgrades to older versions of software) on computer systems, and more specifically to software update management across peer computing systems in a network.
Description of the Related Art
Software providers often distribute (or otherwise make available) update packages to modify existing installations of an application. These software update packages may include new features, remove unused features, or provide patches to improve software functionality, remedy security vulnerabilities, or fix bugs. In some cases, software providers use a centralized update authority system to distribute software updates. Computer systems query the centralized update authority system to determine whether an update is available. As updates are published, the application typically downloads an update package from the centralized update authority and installs the software update.
Typically, software updates are managed on a system-by-system basis. For each system in a network, a user or system administrator generally initiates a software update process by setting up automatic updates on a regular schedule or by manually obtaining a software update package and installing the obtained software update package on the system. The software update may be installed from a package saved on removable storage (e.g., a USB flash drive, compact disc, DVD, Blu-Ray disc, etc.) or retrieved from a central update repository.
Performing software updates on a system-by-system basis may take time due to various factors. For example, clusters of computer systems may be managed by different administrators. Each administrator may implement a different software update schedule, and thus, software updates on different clusters may not be synchronized. In another case, clusters may move to different data centers, which may present difficulties for an administrator to locate and perform updates on systems in a cluster.
In some cases, certain systems may be down for maintenance or otherwise offline when a system administrator pushes out an update package to a cluster of computer systems or otherwise initiates a software update. Thus, after the system administrator initiates a software update, some systems in the cluster may not be updated. To ensure that software updates are propagated to all systems in a cluster, a system administrator may inspect each system individually and manually install the software update on systems that did not receive the software update.
In another case, some clusters or individual computer systems are not connected to the internet for security reasons. Because these systems do not have internet connectivity, these systems are not able to ping a software update server to determine if software updates are available and download any applicable software update packages. To ensure that clusters or computer systems that are not connected to the internet receive software updates, system administrators may manually install software updates on these systems.